package com.jrwd.recycletest.util;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.util.Util;
import com.jrwd.recycletest.R;
import com.jrwd.recycletest.util.glideutil.transformations.CropCircleTransformation;
import com.jrwd.recycletest.util.glideutil.transformations.RoundedCornersTransformation;


/**
 * Created by Koma on 2017/6/6.
 * Description：加载图片工具类
 * version 1.0 Content：
 */

public class GlideUtil {

    /**
     * 加载本地图片
     * @param id
     * @param imageView
     */
    public static void loadLocaImage(Context context, int id, ImageView imageView){
        Glide.with(context).load(id).into(imageView);
    }

    /**
     * 显示本地图片，不用占位图
     */
    /**
     * 预先下载原始图片资源后，本地加载
     */
    public static void loadLocalImage(Context context, String url, ImageView imageView) {
        Glide.with(context)
                .load(url)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .bitmapTransform(new RoundedCornersTransformation(context,DensityUtils.dp2px(context,10),0))  //设置为圆角
                .into(imageView);
    }

    /**
     * 显示本地图片，不用占位图
     */
    /**
     * 预先下载原始图片资源后，本地加载
     */
    public static void loadLocalImageNoRound(Context context, String url, ImageView imageView) {
        Glide.with(context)
                .load(url)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView);
    }


    /**
     * 从远程网路上加载图片
     */
    public static void loadRemoteImage(Context context, String url, ImageView imageView) {
        Glide.with(context)
                .load(url)
                .error(R.mipmap.desktop)//占位图片
                .placeholder(R.mipmap.desktop)//异常图片
                .fallback(R.mipmap.desktop) //当url为空时，回调显示的图片
                .into(imageView);
    }

    /**
     * 预先下载原始图片资源后，本地加载
     */
    public static void loadPreloadImage(Context context, String url, ImageView imageView) {
        Glide.with(context)
                .load(url)
                .error(R.mipmap.desktop)//占位图片
                .placeholder(R.mipmap.desktop)//异常图片
                .fallback(R.mipmap.desktop) //当url为空时，回调显示的图片
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView);
    }

    /**
     * 远程网路上加载圆角图片
     */
    public static void loadRoundImage(Context context, String url, ImageView imageView){
        Glide.with(context)
                .load(url)
                .error(R.mipmap.desktop)//占位图片
                .placeholder(R.mipmap.desktop)//异常图片
                .fallback(R.mipmap.desktop) //当url为空时，回调显示的图片
                .bitmapTransform(new CropCircleTransformation(context))  //设置为圆角
                .into(imageView);
    }

    /**
     * 预先下载原始图片资源后，本地加载圆角图片
     */
    public static void loadPreloadRoundImage(Context context, String url, ImageView imageView) {
        Glide.with(context)
                .load(url)
                .error(R.mipmap.desktop)//占位图片
                .placeholder(R.mipmap.desktop)//异常图片
                .fallback(R.mipmap.desktop) //当url为空时，回调显示的图片
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .bitmapTransform(new CropCircleTransformation(context))  //设置为圆角
                .into(imageView);
    }

    /**
     * 远程网路上加载小圆角图片
     */
    public static void loadSmallRoundImage(Context context, String url, ImageView imageView){
        if(Util.isOnMainThread()){
            Glide.with(context)
                    .load(url)
                    .error(R.mipmap.desktop)//占位图片
                    .placeholder(R.mipmap.desktop)//异常图片
                    .fallback(R.mipmap.desktop) //当url为空时，回调显示的图片
                    .bitmapTransform(new RoundedCornersTransformation(context,DensityUtils.dp2px(context,8),0))  //设置为圆角
                    .into(imageView);
        }
    }
}
